﻿using Application_Core.Bestellung_Component.Data_Access_Layer;
using System.Linq;
using Utility.Persistence_Service;
using Utility.Persistence_Service.Implementations;

namespace Application_Core.Bestellung_Component.Data_Access_Layer.Implementations
{
    internal class AuftragRepositoryImpl : RepositoryImpl<Auftrag>, AuftragRepository
    {
        public AuftragRepositoryImpl(UnitOfWork unitOfWork)
            : base(unitOfWork) { }

        /// <summary>
        /// Gibt den Auftrag der gegebenen Auftragsnummer zurück.
        /// </summary>
        /// <param name="auftragsnummer">Auftragsnummer</param>
        /// <returns>Auftrag | null</returns>
        public Auftrag FindByNummer(int auftragsnummer)
        {
            return (from a in this.unitOfWork.Query<Auftrag>() where a.Nummer == auftragsnummer select a)
                .FirstOrDefault() ?? null;
        }
    }
}
